package com.lagou.com.lagou.homework.Modules3;

import java.util.Scanner;

/**
 * 编程获取两个指定字符串中的最大相同子串。
 *
 *  如： s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
 *
 *  提示： 将短的那个串进行长度依次递减的子串与较长的串比较。
 *
 */
public class item2 {
//自定义查找子符串方法
    public static void show(String s1, String s2) {//s1是较长的字符串
        //int f = s2.length();
        for (int i = s2.length(); i >= 0; i--) {//i=7即可
            for (int j = 0; j <= s2.length(); j++) {
                int k = 0;
                int f = s2.length();
                while (f >= 0) {
                    if ((i - j == f)) {//满足子符串长度进入
                        //System.out.println(j + " " + i);
                        while (j - k >= 0 ) {
                            //System.out.println(j+k + " " + i+k );
                            String sstr1 = s2.substring(j - k, i - k);//获取子字符串
                            boolean b1 = s1.contains(sstr1);//匹配
                            if (b1) {
                                System.out.println("最大相同子串:" + sstr1);
                                return;
                            }
                            k++;
                        }
                        //break;
                    }
                    f--;
                }
            }
        }
    }

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个字符串：");
        String s1 = sc.next();
        String str1 = new String(s1);//asdafghjka
        //System.out.println(str1);
        System.out.println("请输入第二个字符串：");
        String s2 = sc.next();
        String str2 = new String(s2);//aaasdfg
        //System.out.println(str2.length());
        //判断长度，进入方法
        if (str1.length() > str2.length()){
            show(str1, str2);
        }else{
            show(str2, str1);
        }

//        boolean b1 = str1.contains(str2);//匹配
//        System.out.println(b1);
//        String sstr1 = str1.substring(0, 4);//获取子字符串
//        System.out.println(sstr1);
    }


}
